package com.erge.student.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.erge.student.domain.StudentDO;
import com.erge.student.domain.vo.GenderPresentVO;
import com.erge.student.domain.vo.ReportChartVO;
import com.erge.student.domain.vo.StudentCountChartVO;

/**
 * 学生Service接口
 *
 * @author roydon
 * @date 2025-05-22
 */
public interface IStudentService extends IService<StudentDO> {
    /**
     * 查询学生
     *
     * @param id 学生主键
     * @return 学生
     */
    StudentDO selectStudentById(Long id);

    /**
     * 查询学生列表
     *
     * @param student 学生
     * @return 学生集合
     */
    List<StudentDO> selectStudentList(StudentDO student);

    /**
     * 新增学生
     *
     * @param student 学生
     * @return 结果
     */
    int insertStudent(StudentDO student);

    /**
     * 修改学生
     *
     * @param student 学生
     * @return 结果
     */
    int updateStudent(StudentDO student);

    /**
     * 批量删除学生
     *
     * @param ids 需要删除的学生主键集合
     * @return 结果
     */
    int deleteStudentByIds(Long[] ids);

    /**
     * 删除学生信息
     *
     * @param id 学生主键
     * @return 结果
     */
    int deleteStudentById(Long id);

    StudentCountChartVO countChart();

    /**
     * 院系报道情况
     */
    List<ReportChartVO> reportChart();

    GenderPresentVO genderChart();
}
